#ifndef __XGU_FUNCTOR01_H__
#define __XGU_FUNCTOR01_H__

namespace xgu
{
	// -----------------------------------------------------------
	// 1 Argument
	template <typename TRet, typename TArg0>
	class Functor<TRet, TArg0>
	{
	public:
		virtual ~Functor() {};
		virtual TRet operator() (TArg0) = 0;
		virtual bool operator== (const Functor<TRet, TArg0>& lhs) const		{ return false; }
		virtual Functor<TRet, TArg0>* Clone() const = 0;
	};
}

#endif